/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 2010 huliqing, huliqing.cn@gmail.com
 *
 * This file is part of QFaces.
 * QFaces is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * QFaces is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with QFaces.  If not, see <http://www.gnu.org/licenses/>.
 *
 * 这个文件是QFaces的一部分。
 * 您可以单独使用或分发这个文件，但请不要移除这个头部声明信息.
 * QFaces是一个自由软件，您可以自由分发、修改其中的源代码或者重新发布它，
 * 新的任何修改后的重新发布版必须同样在遵守LGPL3或更后续的版本协议下发布.
 * 关于LGPL协议的细则请参考COPYING、COPYING.LESSER文件，
 * 您可以在QFaces的相关目录中获得LGPL协议的副本，
 * 如果没有找到，请连接到 http://www.gnu.org/licenses/ 查看并获取副本。
 *
 * - Author: Huliqing
 * - Contact: huliqing.cn@gmail.com
 * - License: GNU Lesser General Public License (LGPL)
 * - Blog and source code availability: http://www.huliqing.name/
 */

Q.F.UIScroller = {
    // 跳转, method＝post/get
    jumpTo : function(method, URLPrefix, recordStart, formId) {
        var url = URLPrefix + recordStart;
        var shortURL = this.getActionURL(url);
        if (method.toLowerCase() == "get") {
            window.location.href = shortURL;
        } else { // POST
            document.forms[formId].action = shortURL;
            document.forms[formId].submit();
        }
    },
    // 从input中输入页码后按Enter,进行跳转
    jumpByEnter : function(method, URLPrefix, idOfInputJump, formId, pageSize, pageTotal, event) {
        if (event.keyCode == 13)
            this.jumpByClick(method, URLPrefix, idOfInputJump, formId, pageSize, pageTotal);
    },
    // 从input中输入页码后按button进行跳转
    jumpByClick : function(method, URLPrefix, idOfInputJump, formId, pageSize, pageTotal) {
        var targetInput = Q.get(idOfInputJump);
        if (targetInput == null) alert("Object not found!idOfInputJump:" + idOfInputJump);
        var targetPage = targetInput.value;

        if (targetPage == null || targetPage == "")
            targetPage = 1;
        else
            targetPage = parseInt(targetPage, 10);

        if (targetPage <= 0)
            targetPage = 1;
        
        // 如果要转到的页码大于可能存在的最多页码数，那么以最后一页作为targetPage.
        // 注：targetPage是从1开始
        if (targetPage > parseInt(pageTotal, 10)) {
            targetPage = parseInt(pageTotal, 10);
        }
        var _pageSize = parseInt(pageSize, 10);
        var recordStart = _pageSize * (targetPage - 1);
        this.jumpTo(method, URLPrefix, recordStart, formId);
    },
    // 翻页链接跳转
    pageLinkEvent : function(method, url, formId) {
        var shortURL = this.getActionURL(url);
        if (method.toLowerCase() == "get") {
            window.location.href = shortURL;
        } else { // POST
            document.forms[formId].action = shortURL;
            document.forms[formId].submit();
        }
    },
    // 通过点击排序标签的连接
    sortLink : function(method, URLPrefix, formId) {
        var shortURL = this.getActionURL(URLPrefix);
        if (method.toLowerCase() == "get") {
            window.location.href = shortURL;
        } else { // POST
            document.forms[formId].action = shortURL;
            document.forms[formId].submit();
        }
    },
    // 通过点击图片<< < > >>的翻页
    imageLink : function(method, URLPrefix, recordStart, formId) {
        this.jumpTo(method, URLPrefix, recordStart, formId);
    },
    imageOnmouseoverEvent : function(obj) {
        var obj = Q.get(obj);
        var old_style = obj.style.cssText;
        obj.style.border = "1px solid #ED8712";
        obj.style.cursor = "pointer";
        obj.onmouseover = function() {
            this.style.border = "1px solid #ED8712";
            this.style.cursor = "pointer";
        }
        obj.onmouseout = function() {
            this.style.cssText = old_style;
        }
    },
    getActionURL : function(fullURL) {
        // Form只会在当前页面跳转，所以只要求有参数信息就可以,一定不要加入?号前面的内容,这会在Ajax请求组件时，识别出错误的页面URI
        var shortURL = "";
        if (fullURL.indexOf("\?") != -1) {
            shortURL = fullURL.substring(fullURL.indexOf("\?"));
        }
        return shortURL;
    }
}